import requests
import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS

def get_github_repos_chart(url: str, chart_name: str):
    r = requests.get(url)
    response_dict = r.json()
    repo_dicts = response_dict['items']

    print(chart_name + 'repo_dicts_len', len(repo_dicts))
    names, plot_dicts = [], []

    for repo_dict in repo_dicts:
        names.append(repo_dict['name'])
        plot_dict = {
                'value': repo_dict['stargazers_count'],
                'label': repo_dict['description'],
                'xlink': repo_dict['html_url']
            }
        plot_dicts.append(plot_dict)


    # 可视化
    my_style = LS('#333366', base_style=LCS)
    my_config = pygal.Config()
    my_config.x_label_rotation = 45
    my_config.show_legend = False
    my_config.title_font_size = 14
    my_config.major_label_font_size = 18
    my_config.truncate_label = 15
    my_config.show_y_guides = False
    my_config.width = 1000

    chart = pygal.Bar(my_config, style=my_style)
    chart.title = 'Most Starred Python Projects on GitHug'
    chart.x_labels = names

    chart.add('', plot_dicts)
    chart.render_to_file(chart_name + '.svg')